fixup, so that enum values are looked up.
authorTim Janik <timj@gtk.org>
Mon, 27 Jul 1998 01:50:16 +0000 (01:50 +0000)
committerTim Janik <timj@src.gnome.org>
Mon, 27 Jul 1998 01:50:16 +0000 (01:50 +0000)
Mon Jul 27 03:11:20 1998  Tim Janik  <timj@gtk.org>

        * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum
        values are looked up.

        * gtk/gtktypeutils.h:
        * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and
        gtk_type_enums_find_value to lookup enum values.

        * gtk/gtkctree.h:
        * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to
        GtkCTreeExpansionType. fixed signal creations to pass the enum
        types not just the base type GTK_TYPE_ENUM.

        * gtk/gtkclist.h:
        * gtk/gtkclist.c: fixed signal creations to pass the real enum
        types not just the base type GTK_TYPE_ENUM.

20 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtk.defs
gtk/gtkbindings.c
gtk/gtkclist.c
gtk/gtkctree.c
gtk/gtkctree.h
gtk/gtktypebuiltins.h
gtk/gtktypebuiltins_evals.c
gtk/gtktypebuiltins_ids.c
gtk/gtktypebuiltins_vars.c
gtk/gtktypeutils.c
gtk/gtktypeutils.h
gtk/testgtkrc
tests/testgtkrc

index e05754948ec44bdfd53b825b2721df31215cf5fd..592f5679cfc5415e568b114777bac78603b2bad9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+Mon Jul 27 03:11:20 1998  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum
+       values are looked up.
+
+       * gtk/gtktypeutils.h:
+       * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and
+       gtk_type_enums_find_value to lookup enum values.
+
+       * gtk/gtkctree.h: 
+       * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to
+       GtkCTreeExpansionType. fixed signal creations to pass the enum
+       types not just the base type GTK_TYPE_ENUM.
+
+       * gtk/gtkclist.h: 
+       * gtk/gtkclist.c: fixed signal creations to pass the real enum
+       types not just the base type GTK_TYPE_ENUM.
+
 Sun Jul 26 14:50:07 1998  Stefan Jeske  <stefan@gtk.org>
 
        * gtk/testgtk.c : 
index e05754948ec44bdfd53b825b2721df31215cf5fd..592f5679cfc5415e568b114777bac78603b2bad9 100644 (file)
@@ -1,3 +1,21 @@
+Mon Jul 27 03:11:20 1998  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum
+       values are looked up.
+
+       * gtk/gtktypeutils.h:
+       * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and
+       gtk_type_enums_find_value to lookup enum values.
+
+       * gtk/gtkctree.h: 
+       * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to
+       GtkCTreeExpansionType. fixed signal creations to pass the enum
+       types not just the base type GTK_TYPE_ENUM.
+
+       * gtk/gtkclist.h: 
+       * gtk/gtkclist.c: fixed signal creations to pass the real enum
+       types not just the base type GTK_TYPE_ENUM.
+
 Sun Jul 26 14:50:07 1998  Stefan Jeske  <stefan@gtk.org>
 
        * gtk/testgtk.c : 
index e05754948ec44bdfd53b825b2721df31215cf5fd..592f5679cfc5415e568b114777bac78603b2bad9 100644 (file)
@@ -1,3 +1,21 @@
+Mon Jul 27 03:11:20 1998  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum
+       values are looked up.
+
+       * gtk/gtktypeutils.h:
+       * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and
+       gtk_type_enums_find_value to lookup enum values.
+
+       * gtk/gtkctree.h: 
+       * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to
+       GtkCTreeExpansionType. fixed signal creations to pass the enum
+       types not just the base type GTK_TYPE_ENUM.
+
+       * gtk/gtkclist.h: 
+       * gtk/gtkclist.c: fixed signal creations to pass the real enum
+       types not just the base type GTK_TYPE_ENUM.
+
 Sun Jul 26 14:50:07 1998  Stefan Jeske  <stefan@gtk.org>
 
        * gtk/testgtk.c : 
index e05754948ec44bdfd53b825b2721df31215cf5fd..592f5679cfc5415e568b114777bac78603b2bad9 100644 (file)
@@ -1,3 +1,21 @@
+Mon Jul 27 03:11:20 1998  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum
+       values are looked up.
+
+       * gtk/gtktypeutils.h:
+       * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and
+       gtk_type_enums_find_value to lookup enum values.
+
+       * gtk/gtkctree.h: 
+       * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to
+       GtkCTreeExpansionType. fixed signal creations to pass the enum
+       types not just the base type GTK_TYPE_ENUM.
+
+       * gtk/gtkclist.h: 
+       * gtk/gtkclist.c: fixed signal creations to pass the real enum
+       types not just the base type GTK_TYPE_ENUM.
+
 Sun Jul 26 14:50:07 1998  Stefan Jeske  <stefan@gtk.org>
 
        * gtk/testgtk.c : 
index e05754948ec44bdfd53b825b2721df31215cf5fd..592f5679cfc5415e568b114777bac78603b2bad9 100644 (file)
@@ -1,3 +1,21 @@
+Mon Jul 27 03:11:20 1998  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum
+       values are looked up.
+
+       * gtk/gtktypeutils.h:
+       * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and
+       gtk_type_enums_find_value to lookup enum values.
+
+       * gtk/gtkctree.h: 
+       * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to
+       GtkCTreeExpansionType. fixed signal creations to pass the enum
+       types not just the base type GTK_TYPE_ENUM.
+
+       * gtk/gtkclist.h: 
+       * gtk/gtkclist.c: fixed signal creations to pass the real enum
+       types not just the base type GTK_TYPE_ENUM.
+
 Sun Jul 26 14:50:07 1998  Stefan Jeske  <stefan@gtk.org>
 
        * gtk/testgtk.c : 
index e05754948ec44bdfd53b825b2721df31215cf5fd..592f5679cfc5415e568b114777bac78603b2bad9 100644 (file)
@@ -1,3 +1,21 @@
+Mon Jul 27 03:11:20 1998  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum
+       values are looked up.
+
+       * gtk/gtktypeutils.h:
+       * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and
+       gtk_type_enums_find_value to lookup enum values.
+
+       * gtk/gtkctree.h: 
+       * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to
+       GtkCTreeExpansionType. fixed signal creations to pass the enum
+       types not just the base type GTK_TYPE_ENUM.
+
+       * gtk/gtkclist.h: 
+       * gtk/gtkclist.c: fixed signal creations to pass the real enum
+       types not just the base type GTK_TYPE_ENUM.
+
 Sun Jul 26 14:50:07 1998  Stefan Jeske  <stefan@gtk.org>
 
        * gtk/testgtk.c : 
index e05754948ec44bdfd53b825b2721df31215cf5fd..592f5679cfc5415e568b114777bac78603b2bad9 100644 (file)
@@ -1,3 +1,21 @@
+Mon Jul 27 03:11:20 1998  Tim Janik  <timj@gtk.org>
+
+       * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum
+       values are looked up.
+
+       * gtk/gtktypeutils.h:
+       * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and
+       gtk_type_enums_find_value to lookup enum values.
+
+       * gtk/gtkctree.h: 
+       * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to
+       GtkCTreeExpansionType. fixed signal creations to pass the enum
+       types not just the base type GTK_TYPE_ENUM.
+
+       * gtk/gtkclist.h: 
+       * gtk/gtkclist.c: fixed signal creations to pass the real enum
+       types not just the base type GTK_TYPE_ENUM.
+
 Sun Jul 26 14:50:07 1998  Stefan Jeske  <stefan@gtk.org>
 
        * gtk/testgtk.c : 
index 75423085697cf524793854b2c35f1a0fb350d412..af47587c4051e6385fd211702d3fc1c7945f3775 100644 (file)
@@ -23,7 +23,7 @@
    (tabbed GTK_CTREE_LINES_TABBED)
    (none GTK_CTREE_LINES_NONE))
 
-(define-enum GtkCTreeExpansion
+(define-enum GtkCTreeExpansionType
    (expand GTK_CTREE_EXPANSION_EXPAND)
    (expand-recursive GTK_CTREE_EXPANSION_EXPAND_RECURSIVE)
    (collapse GTK_CTREE_EXPANSION_COLLAPSE)
index b991ca85c387f8df0aa03d7a0fb521d357d7d7d1..15097f346a8f6326efaa62ef0788987a7c2e4965 100644 (file)
@@ -310,8 +310,13 @@ binding_compose_params (GtkBindingArg      *args,
                   (param_ftype == GTK_TYPE_ENUM ||
                    param_ftype == GTK_TYPE_FLAGS))
            {
-             /* FIXME: we need identifier lookups here */
-             valid = FALSE;
+             GtkEnumValue *value;
+
+             value = gtk_type_enum_find_value (params->type, args->d.string_data);
+             if (value)
+               GTK_VALUE_ENUM (*params) = value->value;
+             else
+               valid = FALSE;
            }
          else
            valid = FALSE;
index cf428a0b6bb29286d86321b4aa1e615b533c554f..1e748ed930eac6d30fdc133ab6f0004ca5471105 100644 (file)
@@ -477,21 +477,21 @@ gtk_clist_class_init (GtkCListClass * klass)
                     GTK_SIGNAL_OFFSET (GtkCListClass, extend_selection),
                     gtk_marshal_NONE__ENUM_FLOAT_BOOL,
                     GTK_TYPE_NONE, 3,
-                   GTK_TYPE_ENUM, GTK_TYPE_FLOAT, GTK_TYPE_BOOL);
+                   GTK_TYPE_SCROLL_TYPE, GTK_TYPE_FLOAT, GTK_TYPE_BOOL);
   clist_signals[SCROLL_VERTICAL] =
     gtk_signal_new ("scroll_vertical",
                     GTK_RUN_LAST | GTK_RUN_ACTION,
                     object_class->type,
                     GTK_SIGNAL_OFFSET (GtkCListClass, scroll_vertical),
                     gtk_marshal_NONE__ENUM_FLOAT,
-                    GTK_TYPE_NONE, 2, GTK_TYPE_ENUM, GTK_TYPE_FLOAT);
+                    GTK_TYPE_NONE, 2, GTK_TYPE_SCROLL_TYPE, GTK_TYPE_FLOAT);
   clist_signals[SCROLL_HORIZONTAL] =
     gtk_signal_new ("scroll_horizontal",
                     GTK_RUN_LAST | GTK_RUN_ACTION,
                     object_class->type,
                     GTK_SIGNAL_OFFSET (GtkCListClass, scroll_horizontal),
                     gtk_marshal_NONE__ENUM_FLOAT,
-                    GTK_TYPE_NONE, 2, GTK_TYPE_ENUM, GTK_TYPE_FLOAT);
+                    GTK_TYPE_NONE, 2, GTK_TYPE_SCROLL_TYPE, GTK_TYPE_FLOAT);
   clist_signals[ABORT_COLUMN_RESIZE] =
     gtk_signal_new ("abort_column_resize",
                     GTK_RUN_LAST | GTK_RUN_ACTION,
index c04c34e3be80a2b53aa328a6968b018916b98fe2..0010bf43d721c026b268c584c94130107b8ee861 100644 (file)
@@ -133,7 +133,7 @@ static void tree_toggle_expansion       (GtkCTree      *ctree,
                                         GList         *node,
                                         gpointer       data);
 static void change_focus_row_expansion  (GtkCTree      *ctree,
-                                        GtkCTreeExpansion expansion);
+                                        GtkCTreeExpansionType expansion);
 static void real_select_row             (GtkCList      *clist,
                                         gint           row,
                                         gint           column,
@@ -225,7 +225,7 @@ typedef void (*GtkCTreeSignal3) (GtkObject *object,
                                 gpointer   data);
 
 typedef void (*GtkCTreeSignal4) (GtkObject         *object,
-                                GtkCTreeExpansion  arg1,
+                                GtkCTreeExpansionType arg1,
                                 gpointer           data);
 
 
@@ -317,7 +317,7 @@ gtk_ctree_class_init (GtkCTreeClass *klass)
                    GTK_SIGNAL_OFFSET (GtkCTreeClass,
                                       change_focus_row_expansion),
                    gtk_marshal_NONE__ENUM,
-                   GTK_TYPE_NONE, 1, GTK_TYPE_ENUM);
+                   GTK_TYPE_NONE, 1, GTK_TYPE_C_TREE_EXPANSION_TYPE);
 
   gtk_object_class_add_signals (object_class, ctree_signals, LAST_SIGNAL);
 
@@ -2774,7 +2774,7 @@ real_tree_move (GtkCTree *ctree,
 
 static void
 change_focus_row_expansion (GtkCTree          *ctree,
-                           GtkCTreeExpansion  action)
+                           GtkCTreeExpansionType action)
 {
   GtkCList *clist;
   GList *node;
index cd6153c7af42fb1e657143d76dc69dbbe24f91c6..e430a19dd5f2cce2ef49960124db1cc461a4a33b 100644 (file)
@@ -66,7 +66,7 @@ typedef enum
   GTK_CTREE_EXPANSION_COLLAPSE_RECURSIVE,
   GTK_CTREE_EXPANSION_TOGGLE,
   GTK_CTREE_EXPANSION_TOGGLE_RECURSIVE
-} GtkCTreeExpansion;
+} GtkCTreeExpansionType;
 
 typedef struct _GtkCTree      GtkCTree;
 typedef struct _GtkCTreeClass GtkCTreeClass;
@@ -125,7 +125,7 @@ struct _GtkCTreeClass
                             GList    *new_parent,
                             GList    *new_sibling);
   void (*change_focus_row_expansion) (GtkCTree *ctree,
-                                     GtkCTreeExpansion action);
+                                     GtkCTreeExpansionType action);
 };
 
 struct _GtkCTreeRow
index 9decd303bb81e3fc274691a1ca88cc3036229825..45ab8471b6811133e89a0b7ccbac9e2d2aa9f8f6 100644 (file)
@@ -3,7 +3,7 @@
 extern GtkType GTK_TYPE_CELL_TYPE;
 extern GtkType GTK_TYPE_C_TREE_POS;
 extern GtkType GTK_TYPE_C_TREE_LINE_STYLE;
-extern GtkType GTK_TYPE_C_TREE_EXPANSION;
+extern GtkType GTK_TYPE_C_TREE_EXPANSION_TYPE;
 extern GtkType GTK_TYPE_DEBUG_FLAG;
 extern GtkType GTK_TYPE_ACCEL_FLAGS;
 extern GtkType GTK_TYPE_ARROW_TYPE;
index 08d5328d083ed3e0f7567ac2ef2f6d52795adeee..0c2ee779eb1179ded7163b0ca16b3fae957727c4 100644 (file)
@@ -21,7 +21,7 @@ static GtkEnumValue _gtk_c_tree_line_style_values[] = {
   { GTK_CTREE_LINES_NONE, "GTK_CTREE_LINES_NONE", "none" },
   { 0, NULL, NULL }
 };
-static GtkEnumValue _gtk_c_tree_expansion_values[] = {
+static GtkEnumValue _gtk_c_tree_expansion_type_values[] = {
   { GTK_CTREE_EXPANSION_EXPAND, "GTK_CTREE_EXPANSION_EXPAND", "expand" },
   { GTK_CTREE_EXPANSION_EXPAND_RECURSIVE, "GTK_CTREE_EXPANSION_EXPAND_RECURSIVE", "expand-recursive" },
   { GTK_CTREE_EXPANSION_COLLAPSE, "GTK_CTREE_EXPANSION_COLLAPSE", "collapse" },
index 2d1ee74f2bf8ffbbc673ca7ff3684306976ffcaa..0ee573bb047f00487f1484d5f08ea3d49db0d36c 100644 (file)
@@ -6,8 +6,8 @@
     GTK_TYPE_ENUM, _gtk_c_tree_pos_values },
   { "GtkCTreeLineStyle", &GTK_TYPE_C_TREE_LINE_STYLE,
     GTK_TYPE_ENUM, _gtk_c_tree_line_style_values },
-  { "GtkCTreeExpansion", &GTK_TYPE_C_TREE_EXPANSION,
-    GTK_TYPE_ENUM, _gtk_c_tree_expansion_values },
+  { "GtkCTreeExpansionType", &GTK_TYPE_C_TREE_EXPANSION_TYPE,
+    GTK_TYPE_ENUM, _gtk_c_tree_expansion_type_values },
   { "GtkDebugFlag", &GTK_TYPE_DEBUG_FLAG,
     GTK_TYPE_FLAGS, _gtk_debug_flag_values },
   { "GtkAccelFlags", &GTK_TYPE_ACCEL_FLAGS,
index bf7ae60e0580b31fb111bacec22ba2d024485e2e..e6721248bb7a70d65fbdf6fde65590a4912dba59 100644 (file)
@@ -3,7 +3,7 @@
 GtkType GTK_TYPE_CELL_TYPE = 0;
 GtkType GTK_TYPE_C_TREE_POS = 0;
 GtkType GTK_TYPE_C_TREE_LINE_STYLE = 0;
-GtkType GTK_TYPE_C_TREE_EXPANSION = 0;
+GtkType GTK_TYPE_C_TREE_EXPANSION_TYPE = 0;
 GtkType GTK_TYPE_DEBUG_FLAG = 0;
 GtkType GTK_TYPE_ACCEL_FLAGS = 0;
 GtkType GTK_TYPE_ARROW_TYPE = 0;
index 9e577a20e17f7c389a01c9d7f792b53e257dc3dc..a876a7d88485af83f2bd203dbb5018bece74d376 100644 (file)
@@ -553,7 +553,7 @@ gtk_type_enum_get_values (GtkType      enum_type)
        return (GtkEnumValue*) node->type_info.reserved_1;
     }
   
-  g_warning ("gtk_type_enum_get_values(): type `%s' is not derived from `enum' or `flags'",
+  g_warning ("gtk_type_enum_get_values(): type `%s' is not derived from `GtkEnum' or `GtkFlags'",
             gtk_type_name (enum_type));
   
   return NULL;
@@ -565,6 +565,42 @@ gtk_type_flags_get_values (GtkType   flags_type)
   return gtk_type_enum_get_values (flags_type);
 }
 
+GtkEnumValue*
+gtk_type_enum_find_value (GtkType        enum_type,
+                         const gchar    *value_name)
+{
+  g_return_val_if_fail (value_name != NULL, NULL);
+  
+  if (GTK_FUNDAMENTAL_TYPE (enum_type) == GTK_TYPE_ENUM ||
+      GTK_FUNDAMENTAL_TYPE (enum_type) == GTK_TYPE_FLAGS)
+    {
+      GtkEnumValue *vals;
+
+      vals = gtk_type_enum_get_values (enum_type);
+      while (vals)
+       {
+         if (strcmp (vals->value_name, value_name) == 0 ||
+             strcmp (vals->value_nick, value_name) == 0)
+           return vals;
+         vals++;
+       }
+    }
+  else
+    g_warning ("gtk_type_enum_find_value(): type `%s' is not derived from `GtkEnum' or `GtkFlags'",
+              gtk_type_name (enum_type));
+
+  return NULL;
+}
+
+GtkFlagValue*
+gtk_type_flags_find_value (GtkType         flag_type,
+                          const gchar    *value_name)
+{
+  g_return_val_if_fail (value_name != NULL, NULL);
+
+  return gtk_type_enum_find_value (flag_type, value_name);
+}
+
 static inline GtkType
 gtk_type_register_intern (gchar               *name,
                          GtkType       parent,
index af66787b2f6785c087e1fbd15becd644fd625a66..c2b3668b96d0d195efc43347ff5257a15c217ac9 100644 (file)
@@ -263,9 +263,12 @@ GtkType            gtk_type_register_enum          (const gchar    *type_name,
                                                 GtkEnumValue   *values);
 GtkType                gtk_type_register_flags         (const gchar    *type_name,
                                                 GtkFlagValue   *values);
-GtkEnumValue*  gtk_type_enum_get_values        (GtkType        enum_type);
-GtkFlagValue*  gtk_type_flags_get_values       (GtkType        flags_type);
-
+GtkEnumValue*  gtk_type_enum_get_values        (GtkType         enum_type);
+GtkFlagValue*  gtk_type_flags_get_values       (GtkType         flags_type);
+GtkEnumValue*  gtk_type_enum_find_value        (GtkType         enum_type,
+                                                const gchar    *value_name);
+GtkFlagValue*  gtk_type_flags_find_value       (GtkType         flag_type,
+                                                const gchar    *value_name);
 
 #ifdef __cplusplus
 }
index 779a090e2c8fec1249dbd4e8e71b85842c5ab5e1..3427c0a876aa239b108c611e9d23619f7be43532 100644 (file)
@@ -125,3 +125,15 @@ binding "test2"
 class "GtkButton" binding "test1"           # implicit : rc
 class "GtkButton" binding : highest "test2" # override "rc" priority
 
+binding "clist-test"
+{
+  bind "j" {
+    "scroll-vertical" (step-backward, 0.0)
+  }
+  bind "k" {
+    "scroll-vertical" (step-forward, 0.0)
+  }
+}
+
+class "GtkCList" binding "clist-test"
+  
index 779a090e2c8fec1249dbd4e8e71b85842c5ab5e1..3427c0a876aa239b108c611e9d23619f7be43532 100644 (file)
@@ -125,3 +125,15 @@ binding "test2"
 class "GtkButton" binding "test1"           # implicit : rc
 class "GtkButton" binding : highest "test2" # override "rc" priority
 
+binding "clist-test"
+{
+  bind "j" {
+    "scroll-vertical" (step-backward, 0.0)
+  }
+  bind "k" {
+    "scroll-vertical" (step-forward, 0.0)
+  }
+}
+
+class "GtkCList" binding "clist-test"
+